"""
列表的定义
    List (列表) 是 python 中使用最频繁的数据类型，在其他语言中通常叫做数组
    专门用于存储一串信息
    列表用 [] 定义，数据之间使用 , 分割
    列表的索引从 0 开始
        索引就是数据在列表中的位置编号，索引通常又被称为下标
        注意：从列表中获取数据时，如果索引超出范围，程序会报错
"""

# 定义一个列表
name_list = ["张三", "李四", "王五"]
print(name_list)

# 取值和取索引
print(name_list[1])  # 李四

# 索引超出范围，报错
# print(name_list[3])  # IndexError: list index out of range

# 查询指定数据在列表中的索引
# 如果指定的数据在列表中不存在，会报错 
# ## name_list.index("王五1") -->  ValueError: '王五1' is not in list
print(name_list.index("王五"))  # 2

# 修改列表中的数据
## 列表指定的索引超出范围，会报错
name_list[1] = "李老四"
print(name_list)

# 向列表中添加元素
name_list.append("赵六")
print(name_list)

# 向列表的指定位置添加元素
name_list.insert(0, "果不其然")
print(name_list)

# 使用 extend 扩展集合中的元素
## extend 可以把其他列表中的元素追加到当前列表的末尾
other_list = ["悟空", "八戒", "老沙"]
name_list.extend(other_list)
print(name_list)

# 从列表中删除元素

## 删除指定的元素
### 如果指定的元素不存在，或报错 --> ValueError: list.remove(x): x not in list
### 如果列表中的指定数据出现多次，只删除第一次出现的数据
name_list.remove("张三222")
print(name_list)

## 从列表的末尾删除元素
### 不传参数 默认删除尾部的元素
### 可以执行要删除的元素的索引位置
name_list.pop()
print(name_list)

name_list.pop(1)
print(name_list)

# 清空列表
name_list.clear()
print(name_list)



